package com.bj58.data.emailreports.service;

import java.util.List;
import java.util.Map;

import com.bj58.data.emailreports.model.BWRAllLineInc;
import com.bj58.data.emailreports.model.BWRAllOne;
import com.bj58.data.emailreports.model.BWRAllOneJL;
import com.bj58.data.emailreports.model.BWRJzFluxFunnel;
import com.bj58.data.emailreports.model.BWRLineAccount;
import com.bj58.data.emailreports.model.BWRLineCityCate;
import com.bj58.data.emailreports.model.BWRLineCusTran;
import com.bj58.data.emailreports.model.BWRLineFlux;
import com.bj58.data.emailreports.model.BWRLineJTChange;
import com.bj58.data.emailreports.model.BWRLineSPIncome;
import com.bj58.data.emailreports.model.WRCusFunnelVo;
import com.bj58.data.emailreports.model.BWRNoteEffectData;
import com.bj58.data.emailreports.model.BWRBalanceCusLevel;

public interface BusiWeekReportService {

	
	/**总体 - 进度
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public List<BWRAllOne> getBWRAllOneList (String searchDate)throws Exception;
	
	
	/**总体 - 简历进度
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,BWRAllOneJL> getBWRAllOneJLList (List<String> dateList)throws Exception;
	
	
	/**总体-分业务-收入趋势
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public List<BWRAllLineInc> getBWRAllLineIncList(List<String> dateList,String condition)throws Exception;
	
	
	/**总体-分业务-流量趋势
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineFlux>> getBWRAllLineFluxList(List<String> dateList)throws Exception;
	
	
	/**总体-分业务-页面类型流量趋势
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineFlux>> getBWRLinePageFluxList(List<String> dateList)throws Exception;
	
	
	/**总体-分业务-精准各平台流量趋势
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineFlux>> getBWRLineJingzhunFluxList(List<String> dateList)throws Exception;
	
	
	/**分业务线 - 精准置顶参数变化
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineJTChange>> getBWRLineJTChangeMap(List<String> dateList)throws Exception;

	
	/**分业务线 - 精准城市流量漏斗
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRJzFluxFunnel>> getBWRJzFluxFunnelCityMap(List<String> dateList)throws Exception;

	
	/**分业务线 - 精准类别流量漏斗
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRJzFluxFunnel>> getBWRJzFluxFunnelCateMap(List<String> dateList)throws Exception;
	
	
	/**分业务线 余额客户结构
	 * @throws Exception
	 */
	public List<WRCusFunnelVo> cusBanlanceDatas(List<String> dateList,String channel)throws Exception;
	
	
	/**频道 余额消耗周期
	 * @throws Exception
	 */
	public List<String> consumCycleData(String yesterday,String lastWeek,String channel,String cate1,String cate2)throws Exception;
	
	
	/**城市监控
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineCityCate>>  cityDatas (List<String> dateList)throws Exception;
	
	
	/**类别监控
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineCityCate>>  cateDatas (List<String> dateList)throws Exception;
	
	
	/**分平台收入变化
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineSPIncome>>  linePlatformIncomeDatas (List<String> dateList)throws Exception;
	
	/**分来源收入变化
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineSPIncome>>  lineSourceIncomeDatas (List<String> dateList)throws Exception;
	
	
	/**新增流失客户数据
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineCusTran>>  BWRLineCusTranDatas (List<String> dateList)throws Exception;
	
	
	/**余额指标
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineAccount>>  BWRLineAccountDatas (List<String> dateList)throws Exception;
	

	/**城市类别问题定位
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<String>>  cityProbDatas(List<String> dateList,String incomeType)throws Exception;
	
	
	/**重点城市类别监控
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineCityCate>>  cityCateDatas(List<String> dateList)throws Exception;
	
	
	/**在线产品收入趋势-贴均效果
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRNoteEffectData>>  getBWRNoteEffectList(List<String> dateList)throws Exception;
	
	
	/**余额客户结构 -- 客户分层
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRBalanceCusLevel>>  getBWRBalanceCusLevelMap(List<String> dateList)throws Exception;
	
	
	
}
